#!/usr/bin/env python3
"""
自定义模型使用示例
"""

import sys
import os

# 添加项目根目录到路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, project_root)

from tradingagents.config.config_manager import config_manager


def use_custom_model():
    """演示如何使用自定义模型"""
    print("🔍 查找可用的自定义模型...")
    
    # 加载所有模型配置
    models = config_manager.load_models()
    
    # 查找启用的自定义模型
    custom_models = [m for m in models if m.provider == "custom" and m.enabled]
    
    if not custom_models:
        print("❌ 没有找到启用的自定义模型")
        return
    
    print(f"✅ 找到 {len(custom_models)} 个启用的自定义模型:")
    
    for i, model in enumerate(custom_models):
        print(f"\n  {i+1}. 模型信息:")
        print(f"     供应商: {model.provider}")
        print(f"     模型名称: {model.model_name}")
        print(f"     API地址: {model.base_url}")
        print(f"     最大Token: {model.max_tokens}")
        print(f"     温度参数: {model.temperature}")
        
        # 演示如何在代码中使用这些配置
        print(f"\n     📝 使用示例:")
        print(f"     model_config = {{")
        print(f"         'provider': '{model.provider}',")
        print(f"         'model': '{model.model_name}',")
        print(f"         'api_key': 'YOUR_API_KEY',")
        print(f"         'base_url': '{model.base_url}',")
        print(f"         'max_tokens': {model.max_tokens},")
        print(f"         'temperature': {model.temperature}")
        print(f"     }}")


def configure_custom_model_interactive():
    """交互式自定义模型配置"""
    print("\n🔧 交互式自定义模型配置")
    print("您可以通过以下方式配置自定义模型:")
    print("1. Web界面配置 (推荐)")
    print("2. 直接编辑配置文件")
    print("3. 编程方式添加")
    
    print("\n📝 Web界面配置步骤:")
    print("   a) 登录Web应用")
    print("   b) 进入'配置管理' -> '模型配置'")
    print("   c) 在'添加新模型'部分:")
    print("      - 供应商: 选择 'custom'")
    print("      - 模型名称: 输入您的模型名称")
    print("      - API密钥: 输入您的API密钥")
    print("      - 自定义API地址: 输入API地址")
    print("      - 设置其他参数")
    print("      - 点击'添加模型'")
    
    print("\n📝 编程方式添加示例:")
    print('   from tradingagents.config.config_manager import config_manager, ModelConfig')
    print('   ')
    print('   # 创建模型配置')
    print('   custom_model = ModelConfig(')
    print('       provider="custom",')
    print('       model_name="your-model-name",')
    print('       api_key="your-api-key",')
    print('       base_url="https://your-api-endpoint.com/v1",')
    print('       max_tokens=4000,')
    print('       temperature=0.7,')
    print('       enabled=True')
    print('   )')
    print('   ')
    print('   # 添加到配置中')
    print('   models = config_manager.load_models()')
    print('   models.append(custom_model)')
    print('   config_manager.save_models(models)')


if __name__ == "__main__":
    use_custom_model()
    configure_custom_model_interactive()